主题
对比 JavaGuide《LLM 运行机制》、《大模型网关详解》 与二哥《KV Cache 是什么?》《Prefix Caching 是什么?》等五篇,及小林《KV Cache 与 Prompt Caching》《MHA 局限》。
多版对比
分工正好互补:KV Cache 的原理只有二哥讲——自回归生成时每步都重算整段历史的注意力是不可能的,所以把每层注意力的 K、V 缓存下来;图书馆比喻好记:Q 是每次查询的纸条,K 是索引卡,V 是书本身,「Q 是一次性的,K/V 是真金白银」。只缓存 K/V 不缓存 Q 的原因:Q 对应当前步,用完即弃;K/V 由历史 token 决定,后续每步都要反复用。
Prompt/Prefix Caching 是 KV Cache 的跨请求版:二哥讲了机制——相同前缀的 KV 直接复用,首 Token 从几秒到几十毫秒、命中部分按缓存价计费(有差价数倍到几十倍的例子);还讲了前缀污染:开头一个字变了,整条哈希链全失效。JavaGuide 补了供应商差异的准确口径:OpenAI 稳定长前缀自动命中,Anthropic 靠显式标记(写入和读取分开计费),Gemini 按 TTL;二哥「DeepSeek 全球首家全自动」是宣传口径——OpenAI 也有自动缓存,别照搬。两家数字版本还互相打架(50 倍 vs 30 倍),报数前核对官方定价页。
应用层语义缓存只有 JavaGuide 有:相似问题返回缓存的答案,但相似 ≠ 相同——缓存键必须隔离租户、权限、数据版本和 Prompt 版本,否则串权限是事故。
API 中转为什么还可用:只有二哥讲——各家都兼容同一套对话协议,换供应商改个接入点就行,网关在 5xx 时自动切换供应商;这也解释了为什么某家云厂商故障会「连坐」一批依赖它的服务。
小林:把 KV Cache 从「锦上添花」纠正为「让自回归生成可行的基本盘」——朴素自回归总计算量 O(N³),缓存 K/V 后降到 O(N²)。数字有体感:7B 模型 32K 上下文单请求 KV Cache 约 17GB,加权重 31GB,24GB 显存的 4090 直接放不下。显存优化是一条谱系:MHA → MQA(压到 1/H 但掉点 2-5%)→ GQA(光谱,Llama2-70B/Qwen 标配,差距 <0.5%)→ MLA(低秩压缩),加上 Flash Attention(分块 + online softmax,显存 O(N)、快 2-4 倍)和 PagedAttention(虚拟内存式分页,利用率 30-40% → 90%+);并强调结构层(GQA)与实现层(Flash Attention)是叠加不是替代。Prompt Caching 机制数字也全:Claude 显式断点写入 1.25x、命中 10%;OpenAI 前缀超 1024 token 自动缓存;延迟收益取决于命中率,要真实链路压测。
结论:三层缓存框架不变;KV 原理补上「O(N³)→O(N²)」和 17GB 的算例,显存优化谱系作为追问「为什么 KV Cache 这么吃显存」的标准答案。
最优题解
这是两层缓存:模型服务端的 KV Cache 和应用侧的 Prompt Caching。KV Cache 是推理优化——自回归生成每一步都要对全部历史做注意力,把每层的 K、V 存下来复用,只算新 token;Q 不缓存,因为 Q 对应当前步用完即弃,K/V 由历史决定每步都要用。代价是显存随长度线性涨,这也是长上下文贵的根因之一。
Prompt Caching 把这件事搬到跨请求:相同前缀的 KV 直接复用,命中部分按缓存价计费,长系统提示、多轮历史、批量评测这类「不变前缀 + 变化尾部」的场景最受益。工程铁律:不变的内容放前、动态内容放后——前缀开头差一个字,整条缓存就废了。各家机制不同:有的自动命中,有的要显式标记,门槛、寿命、折扣都不一样,别把缓存假设写死在代码里。应用层还可以做语义缓存,但「相似 ≠ 相同」,缓存键必须隔离权限和数据版本。
追问链
追问:为什么不变前缀要放前面? 参考答:前缀缓存按 token 位置从前往后匹配,开头不一致整条链失效;把系统提示、工具定义、少样本示例这些稳定内容前置,动态历史放尾部,命中率才上得去。
追问:语义缓存有什么风险? 参考答:向量相似不等于语义相同,更危险的是越权命中——A 用户的问题命中了 B 用户的缓存答案。所以键里必须掺入租户、权限、数据版本和 Prompt 版本,宁可不命中也不能串。
我的理解
这簇题答好的关键是分清两层:多数人只会背「缓存省钱」,说得出 KV Cache 是推理层、Prompt Caching 是跨请求层、语义缓存是应用层,层次立刻清楚。「不变前缀在前」是唯一必须背死的工程铁律;供应商数字(差价倍数、谁家全自动)两边打架就都别背,面试里说「以官方定价页为准,但机制差异要能讲」最稳。